#!/bin/bash

# Name: 段锦涛
# Desc: 输入一个数字
# Path:
# Usage: 
# Update: 2023年9月22日

# 要求用户输入数字，然后打印该值，一直循环，直到用户输入 end 停止


# 死循环
while :
do
	# 提示语
	read -p "请输入一个数字：(输入 “end” 退出)" n
	# 使用 sed 将 n 中所有数字内容都替换成空字符，这时如果 n 中还有值，则表示数据有问题
	# wc -c 会把结束符也标记为1个字符
	num=`echo ${n} | sed -r 's/[0-9]//g' | wc -c`
	if [ $n == "end" ]; then
		exit 0
	fi
	if [ $num -ne 1 ]; then
		echo "输入数据有误，请输入数字！"
		continue
	fi

	echo $n
done


<<'COMMENT'
总结：
1. wc -c 计算字符串长度，其中结束符也算一个字符
2. 使用 sed 's/[0-9]//g' 可以将字符串里的数字删除
3. exit 直接退出脚本
COMMENT